<?php
/**
 * Envoi d'un email contenant les réservations
 *
 * @package zfbook
 * @subpackage controller
 */
class Zfbook_Controller_ActionHelpers_ExportReservations_Mail
extends Zfbook_Controller_ActionHelpers_ExportReservations_Abstract 
{
    const MIME_TYPE = 'text/html; charset=utf-8';
    
    /**
     * Type mime HTML pour message de confirmation
     *
     * @return string
     */
    public function getMimeType()
    {
        return self::MIME_TYPE;
    }

    /**
     * Expédie un e-mail avec une liste de réservations et retourne un message
     *
     * @return string
     */
    public function getContent()
    {
        // Construction de la liste des réservations en HTML
        // Pour le corps du message.
        $htmlContent = '<h1>Liste des réservations</h1><table border="1">';
        foreach ($this->_resaTab as $key => $item) {
            $htmlContent .= '<tr><td>';
            unset($item['id_reservation']);
            unset($item['id_user']);
            unset($item['id_room']);
            if ($key == 0) {
                $htmlContent .= '<b>' . implode('</b></td><td><b>', array_keys($item));
                $htmlContent .= '</b></td></tr><tr><td>';
            }
            $htmlContent .= implode('</td><td>', array_values($item));
        }
        $htmlContent .= '</td></tr></table>';

        // Destinataire
        $email = Zend_Auth::getInstance()->getIdentity()->email;
        $name  = Zend_Auth::getInstance()->getIdentity()->firstname
        . ' '  . Zend_Auth::getInstance()->getIdentity()->lastname;

        // Plugin PDF pour la pièce jointe
        $pdfExportPlugin = new Zfbook_Controller_ActionHelpers_ExportReservations_Pdf();

        // Transport à utiliser pour l'envoi
        $transport = new Zend_Mail_Transport_Smtp('smtp.wanadoo.fr');

        // Construction de l'e-mail
        $mail = new Zend_Mail('UTF-8');
        $mail->setSubject('Liste des réservations')
        ->setFrom('contact@phptv.fr', 'PHPTV')
        ->addTo($email, $name)

        // Ajout des données HTML
        ->setBodyHtml($htmlContent, 'UTF-8');

        // Ajout d'un attachement (PDF)
        $attachment = $mail->createAttachment($pdfExportPlugin->getContent($reservations));
        $attachment->type = $pdfExportPlugin->getMimeType();
        $attachment->filename = 'reservations.pdf';

        // Envoi
        $mail->send($transport);

        return 'Mail sent to ' . $name;
    }
}
